字节跳动国际化电商日常实习面经汇总（一二三四面 已OC）

--------------------------------------------------------------------------
一面：
·  TCP如何保证稳定传输 
·  TCP窗口滑动机制 
·  数据库熟悉吗？mysql innodb的索引结构是什么了解吗？ 
·  聚簇索引和非聚簇索引 
·  C++对象内存模型 
·  了解Redis吗？（没用过） 
·  分布式id算法了解吗？(回答了个Raft） 
·  函数调用时栈的变化 
·  kill -9 发生了什么 
·  有十个机器，九个是生产的金币是5g，只有一个生产的是4g，给你一个称，问你一次怎么找出来那个生产4g金币的机器 
·  实时输出最近一个小时内访问频率最高的10个IP，要求： 
   -实时输出 
   -从当前时间向前数的1个小时 
·  64匹马，8个赛道，每次比赛能知道相对顺序不知道具体时间，求用最少的比赛次数，求出最快的4匹 
·  给定一个二叉树的两个叶子节点，每个节点给出指向父节点的指针，返回它们的最近公共父亲节点。 要求空间复杂度为O(1)

--------------------------------------------------------------------------
二面：
-自我介绍 
-项目介绍：历程、时间、语言 

先做题 
-二叉树中和为某一值的路径（剑指offer 34） 
-小Q在周末的时候和他的小伙伴来到大城市逛街，一条步行街上有很多高楼，共有n座高楼排成一行。小Q从第一栋一直走到了最后一栋，小Q从来都没有见到这么多的楼，所以他想知道他在每栋楼的位置处能看到多少栋楼呢？（当前面的楼的高度大于等于后面的楼时，后面的楼将被挡住） （写了个O(n^2)的，想不出来了） 

数据库 
-项目里用过数据库吗？数据库的四个特性了解吗？分别是什么？（ACID） 
-它们的底层是怎样保证的呢？（日志、锁、应用层、...） 
-日志的话Msql除了redolog和undolog还有啥？（binlog...不知道了） 
-一致性能解释一下吗？（转账的例子） 

计算机网络 
-url输入到浏览器里发生了什么？ 
-dns是怎么解析的 
-http/https了解吗？底层是什么？ 
-tcp和udp的区别是什么？ 
-tcp如何保证可靠性？具体讲一下 
-智力题：有一个水龙头，一个5L水杯，一个7L水杯，如何精准地获得6L水？ （说了一个方法，但是被说太复杂了）

-------------------------------------------------------------------------------------
三面：
-聊项目 
-项目的难点和挑战点 

基础知识： 
-（项目相关）mysql如何水平伸缩 
-文件系统inode的作用 
-硬链接和软链接的区别 
-docker和虚拟机的区别 
-单核计算密集型任务，单线程还是多线程更好 
-拔掉硬盘会发生什么 

编程题： 
-带随机指针的链表深拷贝 
-01二维数组，1组成的最大正方形面积

--------------------------------------------------------------------------------------
四面：
自我介绍，聊项目
-项目细节介绍 
-如何做的水平伸缩 
-不同副本之间的数据一致性如何保证 
-Raft中的选举过程 
-Raft如果出现了崩溃的话，如何保证正确性（数据的一致、Leader正确选举） 
-如何在数据库平滑的加入硬盘（新的路由规则） 

Go语言基础 
-不太熟，问趴了（不过都答对了） 

做题目 
-接雨水问题

反问 
-开发语言 
-学习建议 
-还有面试吗？？
